home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / comm / comm2 / hdrbbs11.lh0 / HBBS / Source / Control / ControlGUI / ControlGUIMain.c < prev    next >
C/C++ Source or Header  |  1996-10-31  |  6KB  |  273 lines

  1. /* Compile me to get full executable. */
  2.  
  3. #include <stdio.h>
  4. #include "ControlGUI.c"
  5.  
  6. /* Menu Processing for CtrlMenu */
  7. /* Just pass the code field from an IDCMP_MENUPICK or IDCMP_MENUHELP message. */
  8.  
  9. void ProcessMenuIDCMPCtrlMenu( UWORD MenuNumber)
  10. {
  11. UWORD MenuNum;
  12. UWORD ItemNumber;
  13. UWORD SubNumber;
  14. int Done=0;                        /* Set Done to 1 to forget rest of next selects. */
  15. struct MenuItem *item;
  16. while ((MenuNumber != MENUNULL) && (Done == 0))
  17.     {
  18.     item = ItemAddress( CtrlMenu, MenuNumber);
  19.     MenuNum = MENUNUM(MenuNumber);
  20.     ItemNumber = ITEMNUM(MenuNumber);
  21.     SubNumber = SUBNUM(MenuNumber);
  22.     switch ( MenuNum )
  23.         {
  24.         case NOMENU :
  25.             /* No Menu Selected. */
  26.             break;
  27.         case Menu_1 :
  28.             switch ( ItemNumber )
  29.                 {
  30.                 case NOITEM :
  31.                     /* No Item selcted. */
  32.                     break;
  33.                 case CtrlMenu_About :
  34.                     /* Item Text : About */
  35.                     break;
  36.                 case CtrlMenu_ScreenMode :
  37.                     /* Item Text : Screen Mode */
  38.                     break;
  39.                 case bar :
  40.                     /* Item Text : bar */
  41.                     break;
  42.                 case CtrlMenu_Qui :
  43.                     /* Item Text : Quit! */
  44.                     break;
  45.                 }
  46.             break;
  47.         }
  48.     MenuNumber = item->NextSelect;
  49.     }
  50. }
  51.  
  52. /* Cut the core out of this function and edit it suitably. */
  53.  
  54. void ProcessWindowCtrl( LONG Class, UWORD Code, APTR IAddress )
  55. {
  56. struct Gadget *gad;
  57. switch ( Class )
  58.     {
  59.     case IDCMP_GADGETUP :
  60.         /* Gadget message, gadget = gad. */
  61.         gad = (struct Gadget *)IAddress;
  62.         switch ( gad->GadgetID ) 
  63.             {
  64.             case Ctrl_LV1 :
  65.                 /* ListView pressed, Text of gadget :  */
  66.                 break;
  67.             case Ctrl_LV1_Cycle :
  68.                 /* Cycle changed   , Text of gadget :  */
  69.                 break;
  70.             case Ctrl_LV1_Info :
  71.                 /* Button pressed  , Text of gadget : Information */
  72.                 break;
  73.             case Ctrl_LV2_Nodes :
  74.                 /* ListView pressed, Text of gadget :  */
  75.                 break;
  76.             case Ctrl_Window :
  77.                 /* Button pressed  , Text of gadget : Window */
  78.                 break;
  79.             case Ctrl_Screen :
  80.                 /* Button pressed  , Text of gadget : Watch */
  81.                 break;
  82.             case Ctrl_Stop :
  83.                 /* Button pressed  , Text of gadget : Stop */
  84.                 break;
  85.             case Ctrl_Start :
  86.                 /* Button pressed  , Text of gadget : Start */
  87.                 break;
  88.             case Ctrl_Configure :
  89.                 /* Button pressed  , Text of gadget : Configure */
  90.                 break;
  91.             case Ctrl_Shutdown :
  92.                 /* Button pressed  , Text of gadget : Shutdown All */
  93.                 break;
  94.             case Ctrl_LV3_Commands :
  95.                 /* ListView pressed, Text of gadget :  */
  96.                 break;
  97.             case Ctrl_Config :
  98.                 /* Button pressed  , Text of gadget : Config */
  99.                 break;
  100.             case Ctrl_Status :
  101.                 /* Button pressed  , Text of gadget : Status */
  102.                 break;
  103.             case Ctrl_Who :
  104.                 /* ListView pressed, Text of gadget :  */
  105.                 break;
  106.             case Ctrl_5 :
  107.                 /* Button pressed  , Text of gadget : <None> */
  108.                 break;
  109.             case Ctrl_4 :
  110.                 /* Button pressed  , Text of gadget : <None> */
  111.                 break;
  112.             case Ctrl_3 :
  113.                 /* Button pressed  , Text of gadget : <None> */
  114.                 break;
  115.             case Ctrl_2 :
  116.                 /* Button pressed  , Text of gadget : <None> */
  117.                 break;
  118.             case Ctrl_1 :
  119.                 /* Button pressed  , Text of gadget : <None> */
  120.                 break;
  121.             case Ctrl_6 :
  122.                 /* Button pressed  , Text of gadget : <None> */
  123.                 break;
  124.             case Ctrl_7 :
  125.                 /* Button pressed  , Text of gadget : <None> */
  126.                 break;
  127.             case Ctrl_8 :
  128.                 /* Button pressed  , Text of gadget : <None> */
  129.                 break;
  130.             case Ctrl_9 :
  131.                 /* Button pressed  , Text of gadget : <None> */
  132.                 break;
  133.             case Ctrl_10 :
  134.                 /* Button pressed  , Text of gadget : <None> */
  135.                 break;
  136.             }
  137.         break;
  138.     case IDCMP_CLOSEWINDOW :
  139.         /* CloseWindow Now */
  140.         break;
  141.     case IDCMP_MENUPICK :
  142.         /* Menu Selected */
  143.         ProcessMenuIDCMPCtrlMenu( Code );
  144.         break;
  145.     case IDCMP_REFRESHWINDOW :
  146.         GT_BeginRefresh( Ctrl);
  147.         /* Refresh window. */
  148.     RendWindowCtrl( Ctrl, CtrlVisualInfo );
  149.         GT_EndRefresh( Ctrl, TRUE);
  150.     GT_RefreshWindow( Ctrl, NULL);
  151.     RefreshGList( CtrlGList, Ctrl, NULL, ~0);
  152.         break;
  153.     case IDCMP_VANILLAKEY :
  154.         /* Processed key press */
  155.         /* gadgets need processing perhaps. */
  156.         break;
  157.     }
  158. }
  159.  
  160. /* Cut the core out of this function and edit it suitably. */
  161.  
  162. void ProcessWindowCtrlCfg( LONG Class, UWORD Code, APTR IAddress )
  163. {
  164. struct Gadget *gad;
  165. switch ( Class )
  166.     {
  167.     case IDCMP_GADGETUP :
  168.         /* Gadget message, gadget = gad. */
  169.         gad = (struct Gadget *)IAddress;
  170.         switch ( gad->GadgetID ) 
  171.             {
  172.             case CtrlCfg_ScreenMode :
  173.                 /* Button pressed  , Text of gadget : Pick Mode */
  174.                 break;
  175.             case CtrlCfg_Save :
  176.                 /* Button pressed  , Text of gadget : Save */
  177.                 break;
  178.             case CtrlCfg_EditBBSConfig :
  179.                 /* Button pressed  , Text of gadget : BBS Config */
  180.                 break;
  181.             }
  182.         break;
  183.     case IDCMP_CLOSEWINDOW :
  184.         /* CloseWindow Now */
  185.         break;
  186.     case IDCMP_REFRESHWINDOW :
  187.         GT_BeginRefresh( CtrlCfg);
  188.         /* Refresh window. */
  189.     RendWindowCtrlCfg( CtrlCfg, CtrlCfgVisualInfo );
  190.         GT_EndRefresh( CtrlCfg, TRUE);
  191.     GT_RefreshWindow( CtrlCfg, NULL);
  192.     RefreshGList( CtrlCfgGList, CtrlCfg, NULL, ~0);
  193.         break;
  194.     }
  195. }
  196.  
  197. /* Cut the core out of this function and edit it suitably. */
  198.  
  199. void ProcessWindowLoading( LONG Class, UWORD Code, APTR IAddress )
  200. {
  201. struct Gadget *gad;
  202. switch ( Class )
  203.     {
  204.     case IDCMP_GADGETUP :
  205.         /* Gadget message, gadget = gad. */
  206.         gad = (struct Gadget *)IAddress;
  207.         break;
  208.     case IDCMP_CLOSEWINDOW :
  209.         /* CloseWindow Now */
  210.         break;
  211.     case IDCMP_REFRESHWINDOW :
  212.         GT_BeginRefresh( Loading);
  213.         /* Refresh window. */
  214.         GT_EndRefresh( Loading, TRUE);
  215.         break;
  216.     }
  217. }
  218.  
  219.  
  220. int main(void)
  221. {
  222. int done=0;
  223. ULONG class;
  224. UWORD code;
  225. struct Gadget *pgsel;
  226. struct IntuiMessage *imsg;
  227. struct Screen *Scr=NULL;
  228. if (OpenLibs()==0)
  229.     {
  230.     OpenDiskFonts();
  231.     if (MakeImages()==0)
  232.         {
  233.         Scr = OpenCtrlScrnScreen();
  234.         if (Scr != NULL)
  235.             {
  236.             if (OpenCtrlWindow()==0)
  237.                 {
  238.                 while(done==0)
  239.                     {
  240.                     Wait(1L << Ctrl->UserPort->mp_SigBit);
  241.                     imsg=GT_GetIMsg(Ctrl->UserPort);
  242.                     while (imsg != NULL )
  243.                         {
  244.                         class=imsg->Class;
  245.                         code=imsg->Code;
  246.                         pgsel=(struct Gadget *)imsg->IAddress; /* Only reference if it is a gadget message */
  247.                         GT_ReplyIMsg(imsg);
  248.                         ProcessWindowCtrl(class, code, pgsel);
  249.                         /* The next line is just so you can quit, remove when proper method implemented. */
  250.                         if (class==IDCMP_CLOSEWINDOW)
  251.                             done=1;
  252.                         imsg=GT_GetIMsg(Ctrl->UserPort);
  253.                         }
  254.                     }
  255.                 
  256.                 CloseCtrlWindow();
  257.                 }
  258.             else
  259.                 printf("Cannot open window.\n");
  260.             CloseScreen(Scr);
  261.             }
  262.         else
  263.             printf("Cannot Open Screen.\n");
  264.         FreeImages();
  265.         }
  266.     else
  267.         printf("Cannot make images.\n");
  268.     CloseLibs();
  269.     }
  270. else
  271.     printf("Cannot open libraries.\n");
  272. }
  273.